SM4是使用區塊加密的對稱式,主要使用在無線網路的安全機制,像是WIFI的安全在國際上使用WPA3 (Wi-Fi Protected Access);中國是使用WAPI (WLAN Authentication and Privacy Infrastructure)。
一開始的WPA是使用序列加密的RC4,但因為被破解後,WPA2開始使用AES當作裡面的加密,而WAPI的加密是使用SM4但也能使用AES。
SM4的區塊長度和密鑰長度為128位元,加密過程是32次疊代(類似AES)和一次的反序轉變,並且解密為加密的逆序(inversion)。
一開始會有明文,並且加密的密鑰會先經過密鑰擴充(有XOR和非線性變化),產生出輪金鑰後,再把輪金鑰和明文做XOR和非線性變化(這裡共32次),最後做一次反序轉變就是密文了。
非線性變化是指查表,和AES一樣。解密也是一樣32次疊代和一次反序轉變,其中只需把輪密鑰的順序是相反。
相反的意思是假設加密的輪密鑰是x0,x1,…,x34,x35,那個解密就是先從x35,x34,…,x1,x0。
反序轉變的意思是假設有4個數值x35,x34,x33,x32,經冠反序轉變會變成x32,x33,x34,x35而x32,x33,x34,x35就是輸出密文y0,y1,y2,y3。